package com.jason.canvas.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;

/**
 * @DESC: Rect与RectF 的使用
 * @Author: Jason
 * @Date: 16/9/18
 * @Time: 22:15
 */

public class RectView4 extends View {

    private Rect mRect;

    public RectView4(Context context, AttributeSet attrs) {
        super(context, attrs);

        mRect = new Rect(0, 0, 500, 500);
        // 取两个区域的相交区域作为最终区域
        /**
         * 第二个区域是调用intersect方法时指定的(250, 250, 750, 750)，这两个区域对应上图的两个黄色线框，
         * 两者相交的地方则为最终的红色区域，
         * 而intersect方法的计算方式是相当有趣的，
         * 它不是单纯地计算相交而是去计算相交区域最近的左上端点和最近的右下端点
         */
        //mRect.intersect(250, 250, 750, 750);

        /**
         * union方法与intersect相反
         * 取的是相交区域最远的左上端点作为新区域的左上端点，而取最远的右下端点作为新区域的右下端点
         */
        mRect.union(250, 250, 750, 750);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawColor(Color.BLUE);
        canvas.clipRect(mRect);
        canvas.drawColor(Color.RED);

    }
}
